This invention relates generally to electronic computers and more particularly to electronic computers using read-only memories to contain microprograms.
Computers may be divided into a plurality of classes depending on the use for which they are intended, among which are scientific, commercial and numerical control machines. These computers are able to execute an instruction set, which makes them particularly efficient when used in their own field, but are relatively inefficient when used in applications in other fields. As a result of their specialized nature, the potential market for any particular computer is only a fraction of the total potential market for computers of that size range. Since the selling price of any machine is to a large part dependent on the production level that can be achieved, these computers are more expensive than they would be if they had a wider range of usefulness.
General purpose computers attempt to solve this dilemma by providing an instruction repertoire which is acceptable for a wide range of uses. In practice, however, either the instruction repertoire is too small so that the computer is not very efficient in any application or the large amount of logic circuitry necessary to decode and execute all the instructions of a broad repertoire make the machine much too costly.
Attempts have also been made to solve the problem by the use of microprogramming, in which each program instruction corresponds to a microprogram. In this way, a machine with a given microinstruction repertoire may be specialized for different applications by changing the microprogram. Since each microinstruction orders a fairly elemental operation by the machine, the machine logic is greatly simplified.
In some cases the microprograms have been stored in the internal operational memory, which has allowed a great deal of flexibility in modifying the microprograms. However, since the access time of the internal operational memory, usually a core memory, is relatively long, and since the cost per bit is relatively high, either the machine is too slow or the logic is still complex on one hand, and either the microprograms take up too large a portion of the memory or the memory is quite large and expensive on the other. It is impossible in practice with this system to obtain a machine having all the features of low cost, high processing speed, and adequate program and data storing capacity.
Another type of computer stores microprograms in a read-only memory having a much faster access and lower cost per bit than a core memory in order to increase the processing speed while simplifying the logic. This machine does mot achieve the needed cost reduction, however, since the "microinstructions" of the microprogram are not really instructions but are actually decoded sets of commands. Each bit of the "microinstructions" corresponds to a particular unit of the machine and signifies whether that unit is to be activated or not. Thus, there must be a great number of bits in each microinstruction and the read-only memory must be very large and therefore expensive. Also since the portion of the machine which must be substituted to specialize the machine for a particular application is relatively large, only a limited cost saving is realized from this aspect.
Normally a central unit of a computer must provide for controlling various peripheral units and other control units. Operations of these units may require different amount of time and may involve only a small part of the central unit. In a microprogrammed computer each operation is controlled by a corresponding microprogram. Known central units normally process the various microprograms in series under the control of the main program, whereby the computer is relatively slow.
Known machines in transferring information to peripheral units, such as a printer, transfer the information to be printed to a buffer register in the printer. The machine also sends control signals to the control unit of the printer for causing it to decode the information in the buffer and to print it. The control unit of a printer or other peripheral must therefore be rather complex and expensive. This cost can be a very substantial factor in the total price of small scale computer system which may require several peripheral units, each with its own control unit.